package com.whmall.service.crm.module.company.service;

import com.whmall.component.entity.dto.OperatorReqDTO;
import com.whmall.component.entity.dto.PageReqDTO;
import com.whmall.component.entity.dto.PageRspDTO;
import com.whmall.service.crm.entity.dto.company.*;
import com.whmall.service.crm.entity.dto.companyuser.CompanyUserAddressDTO;

import java.util.List;

/**
 * 公司用户地址服务
 */
public interface CompanyUserAddressService {

    /**
     * 根据id获取公司用户收货地址
     *
     * @param id id
     * @return 收货地址
     */
    CompanyUserAddressDTO getById(long id);

    CompanyUserAddressAddRspDTO add(CompanyUserAddressAddReqDTO reqDTO);

    String update(CompanyUserAddressUpdateReqDTO reqDTO);

    /**
     * 生成发票地址
     *
     * @param id
     * @param operator
     * @return 状态码
     */
    int genInvoiceAddress(Long id, OperatorReqDTO operator);

    void remove(Long id, OperatorReqDTO operator);

    void setDefault(Long id, OperatorReqDTO operator);

    List<CompanyUserAddressQueryRspDTO> list(CompanyUserAddressQueryReqDTO queryReqDTO);

    PageRspDTO<CompanyUserAddressQueryRspDTO> list(PageReqDTO pageReqDTO, CompanyUserAddressQueryReqDTO reqDTO);
}
